Skip to main content

API e APIv2

O bloco API permite realizar chamadas API utilizando o protocolo HTTP. Existem dois blocos disponíveis: "API" e "APIv2".

Image 10

O bloco "APIv2" é a versão mais recente, trazendo diversas melhorias e atualizações constantes, sendo a opção recomendada para uso.

Diferenças!

  • API v1: para utilizar o retorno da API, a resposta precisa estar em um template predefinido.
  • API v2: não possui um modelo fixo de resposta, podendo ser utilizado para fazer requisições em qualquer API, armazenando o retorno com base no mapeamento JSON.

Configurações do bloco "API e APIv2" no Digital Contact Bots

API v1

O "APIv1" é um bloco baseado em template de resposta, permitindo armazenar variáveis de retorno ou enviar mensagens.

Image 11

O menu lateral do bloco contém os seguintes campos:

Image 5

  • URL endpoint: onde o endpoint da API é inserido.
  • Editar Json payload: ao clicar neste botão, um modal é aberto.

Image 2

Neste modal, você pode inserir o payload da requisição no formato JSON. Também é possível adicionar variáveis do fluxo, utilizando o botão “Adicionar variáveis”.

  • Método HTTP: define o método HTTP da requisição.
  • Aguardar resposta da API: se ativado, o bloco aguardará a resposta da API antes de prosseguir. O tempo de espera deve ser configurado em milissegundos, com um valor padrão de 10000ms (10 segundos).

Image 1

  • Ver formatos da resposta: abre um modal exibindo os formatos de resposta suportados pelo bloco. Se a resposta da API corresponder a algum desses formatos, uma mensagem será enviada ou o valor de variáveis do fluxo será alterado.

Image 4

API v2

A "APIv2" permite realizar requisições HTTP sem um modelo fixo de resposta, armazenando variáveis de retorno com base no mapeamento JSON.

Menu lateral

Image 3

  • URL endpoint: define o endpoint da API
  • Método HTTP: define o método HTTP da requisição.
  • Adicionar Header: ao clicar neste botão, a opção de adicionar um header à requisição será exibida.

Image 7

  • Editar Json payload: ao clicar neste botão, um modal será aberto.

Image 2

Neste modal, você pode inserir o payload da requisição em JSON e adicionar variáveis do fluxo através do botão “Adicionar variáveis”.

  • Variáveis: permite salvar a resposta da requisição em variáveis, que são armazenadas no formato chave/valor do mapeamento JSON.
    • O campo “Variável” define a variável do fluxo onde o valor será armazenado.
    • O campo “Valor” representa a chave correspondente ao nome dos atributos da classe.

Image 6

Por exemplo, Se uma API retornar a seguinte resposta:

{

"local" : "Brasil",

"DDI" : 55,

"moeda" : "Real",

}

Podemos armazenar esses valores nas variáveis da seguinte forma:

Image 9

  • Aguardar resposta da API: se ativado, o bloco aguardará a resposta da API antes de prosseguir. O tempo de espera deve ser configurado em milissegundos, com um valor padrão de 10000ms (10 segundos).

Image 8

  • Mensagem de resposta durante processamento: define a mensagem enviada ao usuário enquanto a requisição está sendo processada.

Limitações e Processamento do Bloco "APIv2"

Processamento de Variáveis

  • Todas as variáveis delimitadas por $$ no payload (body) são substituídas pelo respectivo valor.
    • Exemplo: "nome": "$$nome$$" será processado como "nome": "João".

Escape de Caracteres

  • Apenas os seguintes caracteres são escapados dentro das variáveis:
    • " (aspas duplas) = \"
    • \ (contrabarra) = \\

Validação de JSON

  • O payload é validado com JSON.parse() para garantir a integridade do JSON.
    • Em caso de falha, um erro será registrado na tela de log de erros.

Padrão de JSON Aceito

  • O JSON deve seguir o padrão:
    • Chaves (keys) delimitadas por aspas duplas.
    • Valores string delimitados por aspas duplas.
    • Valores booleanos, numéricos ou objetos podem ser usados sem delimitadores.

Exemplo de JSON Válido

{
"nome": "João d`a Silva",
"documentos": {
"rg": 123456,
"cpf": "12345678`909"
},
"valido": true,
"idade": 40.5,
"filiacao": [
{
"mae": {
"nome": "Maria da Silva",
"idade": 82
}
},
{
"pai": {
"nome": "José d'a Silva",
"idade": 84
}
}
]
}